/// done~
/***
给定一个非负整数 c ，你要判断是否存在两个整数 a 和 b，使得 a*a + b*b = c 。
示例 1：
输入：c = 5
输出：true
解释：1 * 1 + 2 * 2 = 5
示例 2：
输入：c = 3
输出：false
示例 3：
输入：c = 4
输出：true
示例 4：
输入：c = 2
输出：true
示例 5：
输入：c = 1
输出：true
提示：
    0 <= c <= 231 - 1
**/

/*
 * @Author:gxx
 * @Date: 2021-03-29 17:21:02
 * @Last Modified by: gxx
 * @Last Modified time: 2021-03-29 17:21:02
 * @Description: 平方数之和
*/

#include <iostream>
#include <cmath>
#include <string>

#include <vector>
using namespace std;

int ping(int a){
    int result = 1;
    for(int i = 0; i< a; i++){
        result *=10;
    }
    return result;
}

int parse_input(string ss){
    int len = ss.length();
    int count = 0;
    int deliver;
    int result = 0;
    vector<int>v;
    for(int i = 0; i< len;i++){
        if(ss[i]>='0'&&ss[i]<='9')
        count++;
        deliver= ss[i] - '0';
        v.push_back(deliver);
    }
    for(int i = count; i > 0;i--){
        result += v[count-i]*ping(i);
    }
    return result;
}

bool found_num(int res){
    int sqr = sqrt(res);
    int sqrr = sqrt(res); 
    for(int i = 0;i <= sqr;i++){
        for(int j = 0;j <= sqrr;j++){
            if (i * i + j *j == res)
            return true;
        }
    }
    return false;
}

int main(int argc, char **argv){
    //从输入：c = 123 中解析出 int 型 123
    string ss;
    while(getline(cin,ss)){
        //parse->int
        int res = parse_input(ss);
        if(found_num(res)){
            cout << "true"<<endl;
        }else 
        cout << "false" <<endl;
    }
    return 0;
}